package de.hdu.tennis.ctrl;


import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import de.hdu.tennis.dao.TennisplatzDao;
import de.hdu.tennis.model.Tennisplatz;
/**
 * Tennisplatzcontroller
 * @author Lilli Kardapolzew, Katharina Weber, Carolina Hirtreiter
 *
 */
@Controller
public class TennisplatzController {
	
	private static Logger log = Logger.getLogger(TennisplatzController.class);
	private TennisplatzDao tennisplatzDao = null;

    public void setTennisplatzDao(TennisplatzDao tennisplatzDao) {
		this.tennisplatzDao = tennisplatzDao;
	}
    
	/**
     * <p>Edits Tennisplatz </p>
     * <p>Expected HTTP GET and request '/EditTennisplatz.hmtl'.<br>
     * Linked Viewname to 'edit-tennisplatz.jsp'<br>
     * @param id ID of Tennisplatz - optional, if null then new Tennisplatz</p>
     * @return ModelAndView edit-tennisplatz
     */
    @RequestMapping(value="/EditTennisplatz.html", method=RequestMethod.GET)
    public ModelAndView edit(@RequestParam(required=false) Integer id) {
    	log.debug("EditTennisplatz.html");
    	ModelAndView mv = new ModelAndView();
    	if (id == null) {
    		mv.addObject(new TennisplatzController());
    	} else { 
    		mv.addObject(tennisplatzDao.findById(id));
    	}
    	mv.addObject("title", "Tennisplatzverwaltung");
    	mv.addObject("message", "Tragen Sie den Tennisplatz ein");
    	mv.setViewName("edit-tennisplatz");
    	return mv;
    }

	/**
     * <p>Save Tennisplatz - only for Admin </p>
     * <p>Expected HTTP POST and request '/SaveTennisplatz.hmtl'.</p>
     * @return ModelAndView list-tennisplatz
     */
    @RequestMapping(value="/SaveTennisplatz.html", method=RequestMethod.POST)
    public String save(Tennisplatz tennisplatz) {
        tennisplatzDao.save(tennisplatz);
        return "redirect:AlleTennisplatz.html";
    }


	/**
     * <p>lists Tennisplatz</p>
     * <p>Expected HTTP GET and request '/AlleTennisplatz.hmtl'.<br>
     * Linked Viewname to 'list-tennisplatz.jsp'</p>
     * @return ModelAndView list-tennisplatz
     */

    @RequestMapping(value="/AlleTennisplatz.html", method=RequestMethod.GET)
    public ModelAndView findAll() {
		ModelAndView mv = new ModelAndView();
		mv.addObject("title", "Tennisplaetze");
		mv.addObject("message", "Vorhandene Tennispl�tze");
		mv.addObject("tennisplatz", tennisplatzDao.findAll());
		mv.addObject("edit", true);
		mv.setViewName("list-tennisplatz");
		return mv;
    }
}
